#pragma once
#include "wc3main.h"
#include "wc3collections.h"

procedure wc3props_OnInit();
void wc3props_main();

	enum TWc3PropId
	{
		piContextId = 0x0,
		piJassEnv = 0x5,
		piSynData = 0xD,
		piNetProvider = 0xE
	};

	enum TSynDataId
	{
		sdCheatData = 0x0,
		sd01 = 0x1,
		sdNetData = 0x2,
		sdRandData = 0x3,
		SYNDATA_WAR3SLKDATABASE_0 = 0x4,
		SYNDATA_ABILITYDATABASE = 0x5,
		sdGameWar3 = 0x6,
		SYNDATA_WAR3SLKDATABASE_1 = 0x7,
		sd08 = 0x8,
		SYNDATA_UPGRADEDATABASE = 0x9,
		sd0A = 0xA,
		sd0B = 0xB,
		SYNDATA_UNITCUSTOMDATA = 0xC,
		SYNDATA_ITEMCUSTOMDATA = 0xD,
		SYNDATA_DESTRUCTABLECUSTOMDATA = 0xE,
		sd0F = 0xF,
		SYNDATA_ABILITYCUSTOMDATA = 0x10,
		SYNDATA_BUFFCUSTOMDATA = 0x11,
		SYNDATA_UPGRADECUSTOMDATA = 0x12,
		sdMiscCustom = 0x13
	};

	struct TEngineData
	{
		Pointer MiscProfile;
		Pointer UnknownProfile;
		TSArray<Pointer> SynData;
	};
	typedef TEngineData* PEngineData;


	typedef Pointer (__stdcall *_GetWc3Prop_1) ();

	//_GetWc3Prop_1 _GetWc3Prop;

Pointer GetWc3Prop(TWc3PropId Index);
Pointer GetSynData(TSynDataId Index);
